<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Spanning Tree Protocol</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Spanning_Tree_Protocol"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Spanning_Tree_Protocol rootpage-Spanning_Tree_Protocol skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Spanning Tree Protocol</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks hlist"><tbody><tr><th class="sidebar-title"><a href="Internet_protocol_suite" title="Internet protocol suite">Internet protocol suite</a></th></tr><tr><th class="sidebar-heading">
<a href="Application_layer" title="Application layer">Application layer</a></th></tr><tr><td class="sidebar-content">
<ul><li><a href="Border_Gateway_Protocol" title="Border Gateway Protocol">BGP</a></li>
<li><a href="Dynamic_Host_Configuration_Protocol" title="Dynamic Host Configuration Protocol">DHCP</a> (<a href="DHCPv6" title="DHCPv6">v6</a>)</li>
<li><a href="Domain_Name_System" title="Domain Name System">DNS</a></li>
<li><a href="File_Transfer_Protocol" title="File Transfer Protocol">FTP</a></li>
<li><a href="HTTP" title="HTTP">HTTP</a> (<a href="HTTP/3" title="HTTP/3">HTTP/3</a>)</li>
<li><a href="HTTPS" title="HTTPS">HTTPS</a></li>
<li><a href="Internet_Message_Access_Protocol" title="Internet Message Access Protocol">IMAP</a></li>
<li><a href="Internet_Printing_Protocol" title="Internet Printing Protocol">IPP</a></li>
<li><a href="IRC" title="IRC">IRC</a></li>
<li><a href="Lightweight_Directory_Access_Protocol" title="Lightweight Directory Access Protocol">LDAP</a></li>
<li><a href="Media_Gateway_Control_Protocol" title="Media Gateway Control Protocol">MGCP</a></li>
<li><a href="MQTT" title="MQTT">MQTT</a></li>
<li><a href="Network_News_Transfer_Protocol" title="Network News Transfer Protocol">NNTP</a></li>
<li><a href="Network_Time_Protocol" title="Network Time Protocol">NTP</a></li>
<li><a href="Open_Shortest_Path_First" title="Open Shortest Path First">OSPF</a></li>
<li><a href="Post_Office_Protocol" title="Post Office Protocol">POP</a></li>
<li><a href="Precision_Time_Protocol" title="Precision Time Protocol">PTP</a></li>
<li><a href="Open_Network_Computing_Remote_Procedure_Call" class="mw-redirect" title="Open Network Computing Remote Procedure Call">ONC/RPC</a></li>
<li><a href="Real-time_Transport_Protocol" title="Real-time Transport Protocol">RTP</a></li>
<li><a href="Real-Time_Streaming_Protocol" title="Real-Time Streaming Protocol">RTSP</a></li>
<li><a href="Routing_Information_Protocol" title="Routing Information Protocol">RIP</a></li>
<li><a href="Session_Initiation_Protocol" title="Session Initiation Protocol">SIP</a></li>
<li><a href="Simple_Mail_Transfer_Protocol" title="Simple Mail Transfer Protocol">SMTP</a></li>
<li><a href="Simple_Network_Management_Protocol" title="Simple Network Management Protocol">SNMP</a></li>
<li><a href="Secure_Shell" title="Secure Shell">SSH</a></li>
<li><a href="Telnet" title="Telnet">Telnet</a></li>
<li><a href="Transport_Layer_Security" title="Transport Layer Security">TLS/SSL</a></li>
<li><a href="XMPP" title="XMPP">XMPP</a></li>
<li><i>more...</i></li></ul></td>
</tr><tr><th class="sidebar-heading">
<a href="Transport_layer" title="Transport layer">Transport layer</a></th></tr><tr><td class="sidebar-content">
<ul><li><a href="Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a></li>
<li><a href="User_Datagram_Protocol" title="User Datagram Protocol">UDP</a></li>
<li><a href="Datagram_Congestion_Control_Protocol" title="Datagram Congestion Control Protocol">DCCP</a></li>
<li><a href="Stream_Control_Transmission_Protocol" title="Stream Control Transmission Protocol">SCTP</a></li>
<li><a href="Resource_Reservation_Protocol" title="Resource Reservation Protocol">RSVP</a></li>
<li><a href="QUIC" title="QUIC">QUIC</a></li>
<li><i>more...</i></li></ul></td>
</tr><tr><th class="sidebar-heading">
<a href="Internet_layer" title="Internet layer">Internet layer</a></th></tr><tr><td class="sidebar-content">
<ul><li><a href="Internet_Protocol" title="Internet Protocol">IP</a>
<ul><li><a href="IPv4" title="IPv4">v4</a></li>
<li><a href="IPv6" title="IPv6">v6</a></li></ul></li>
<li><a href="Internet_Control_Message_Protocol" title="Internet Control Message Protocol">ICMP</a> (<a href="ICMPv6" title="ICMPv6">v6</a>)</li>
<li><a href="Neighbor_Discovery_Protocol" title="Neighbor Discovery Protocol">NDP</a></li>
<li><a href="Explicit_Congestion_Notification" title="Explicit Congestion Notification">ECN</a></li>
<li><a href="Internet_Group_Management_Protocol" title="Internet Group Management Protocol">IGMP</a></li>
<li><a href="IPsec" title="IPsec">IPsec</a></li>
<li><i>more...</i></li></ul></td>
</tr><tr><th class="sidebar-heading">
<a href="Link_layer" title="Link layer">Link layer</a></th></tr><tr><td class="sidebar-content">
<ul><li><a href="Address_Resolution_Protocol" title="Address Resolution Protocol">ARP</a></li>
<li><a href="Tunneling_protocol" title="Tunneling protocol">Tunnels</a></li>
<li><a href="Point-to-Point_Protocol" title="Point-to-Point Protocol">PPP</a></li>
<li><a href="Medium_access_control" title="Medium access control">MAC</a></li>
<li><i>more...</i></li></ul></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p>The <b>Spanning Tree Protocol </b>(<b>STP</b>) is a <a href="Network_protocol" class="mw-redirect" title="Network protocol">network protocol</a> that builds a loop-free <a href="Logical_topology" class="mw-redirect" title="Logical topology">logical topology</a> for <a href="Ethernet_network" class="mw-redirect" title="Ethernet network">Ethernet networks</a>. The basic function of STP is to prevent <a href="Bridge_loop" class="mw-redirect" title="Bridge loop">bridge loops</a> and the <a href="Broadcast_radiation" class="mw-redirect" title="Broadcast radiation">broadcast radiation</a> that results from them. Spanning tree also allows a <a href="Network_design" class="mw-redirect" title="Network design">network design</a> to include backup links providing <a href="Fault_tolerance" title="Fault tolerance">fault tolerance</a> if an active link fails.
</p><p>As the name suggests, STP creates a <a href="Spanning_tree" title="Spanning tree">spanning tree</a> that characterizes the relationship of nodes within a network of connected layer-2 <a href="Network_bridge" title="Network bridge">bridges</a>, and disables those links that are not part of the spanning tree, leaving a single active path between any two network nodes. STP is based on an algorithm that was invented by <a href="Radia_Perlman" title="Radia Perlman">Radia Perlman</a> while she was working for <a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">Digital Equipment Corporation</a>.<sup id="cite_ref-perlman_paper_1-0" class="reference"><a href="#cite_note-perlman_paper-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>In 2001, the <a href="IEEE" class="mw-redirect" title="IEEE">IEEE</a> introduced <b>Rapid Spanning Tree Protocol</b> (<b>RSTP</b>) as 802.1w. RSTP provides significantly faster recovery in response to network changes or failures, introducing new convergence behaviors and bridge port roles to do this. RSTP was designed to be backwards-compatible with standard STP.
</p><p>STP was originally standardized as <a href="IEEE_802.1D" title="IEEE 802.1D">IEEE 802.1D</a> but the functionality of spanning tree (802.1D), rapid spanning tree (802.1w), and <a href="Multiple_Spanning_Tree_Protocol" title="Multiple Spanning Tree Protocol">Multiple Spanning Tree Protocol</a> (802.1s) has since been incorporated into <a href="IEEE_802.1Q-2014" class="mw-redirect" title="IEEE 802.1Q-2014">IEEE 802.1Q-2014</a>.<sup id="cite_ref-802.1Q_3-0" class="reference"><a href="#cite_note-802.1Q-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>While STP is still in use today, in most modern networks its primary use is as a loop-protection mechanism rather than a fault tolerance mechanism. <a href="Link_aggregation" title="Link aggregation">Link aggregation</a> protocols such as <a href="Link_aggregation#Link_Aggregation_Control_Protocol" title="Link aggregation">LACP</a> will bond two or more links to provide fault tolerance while simultaneously increasing overall link capacity.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Protocol_operation">Protocol operation</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1273380762/mw-parser-output/.tmulti">
/* start https://en.wikipedia.org/ */
.mw-parser-output .tmulti .multiimageinner{display:flex;flex-direction:column}.mw-parser-output .tmulti .trow{display:flex;flex-direction:row;clear:left;flex-wrap:wrap;width:100%;box-sizing:border-box}.mw-parser-output .tmulti .tsingle{margin:1px;float:left}.mw-parser-output .tmulti .theader{clear:both;font-weight:bold;text-align:center;align-self:center;background-color:transparent;width:100%}.mw-parser-output .tmulti .thumbcaption{background-color:transparent}.mw-parser-output .tmulti .text-align-left{text-align:left}.mw-parser-output .tmulti .text-align-right{text-align:right}.mw-parser-output .tmulti .text-align-center{text-align:center}@media all and (max-width:720px){.mw-parser-output .tmulti .thumbinner{width:100%!important;box-sizing:border-box;max-width:none!important;align-items:center}.mw-parser-output .tmulti .trow{justify-content:center}.mw-parser-output .tmulti .tsingle{float:none!important;max-width:100%!important;box-sizing:border-box;text-align:center}.mw-parser-output .tmulti .tsingle .thumbcaption{text-align:left}.mw-parser-output .tmulti .trow>.thumbcaption{text-align:center}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .tmulti .multiimageinner span:not(.skin-invert-image):not(.skin-invert):not(.bg-transparent) img{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .tmulti .multiimageinner span:not(.skin-invert-image):not(.skin-invert):not(.bg-transparent) img{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="thumb tmulti tright"><div class="thumbinner multiimageinner" style="width:608px;max-width:608px"><div class="trow"><div class="tsingle" style="width:302px;max-width:302px"><div class="thumbimage"><span typeof="mw:File"></span></div><div class="thumbcaption"><a href="Network_bridge" title="Network bridge">Bridges</a> with Spanning Tree Protocol implementation in a local area network (LAN). One bridge is the STP <i>root bridge</i>. All bridge ports that connect a link between two bridges are either a <i>root port</i> (RP), a <i>designated port</i> (DP), or a <i>blocked port</i> (BP).</div></div><div class="tsingle" style="width:302px;max-width:302px"><div class="thumbimage"><span typeof="mw:File"></span></div><div class="thumbcaption">After link failure the spanning tree algorithm computes and spans new least-cost tree.</div></div></div></div></div>
<p>The need for the Spanning Tree Protocol (STP) arose because <a href="Network_switch" title="Network switch">switches</a> in <a href="Local_area_networks" class="mw-redirect" title="Local area networks">local area networks</a> (LANs) are often interconnected using redundant links to improve resilience should one connection fail.<sup id="cite_ref-Angelescu_4-0" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 386">: 386 </span></sup> However, this connection configuration creates a <a href="Switching_loop" title="Switching loop">switching loop</a> resulting in <a href="Broadcast_radiation" class="mw-redirect" title="Broadcast radiation">broadcast radiations</a> and <a href="MAC_table" class="mw-redirect" title="MAC table">MAC table</a> instability.<sup id="cite_ref-Angelescu_4-1" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 388">: 388 </span></sup> If redundant links are used to connect switches, then switching loops need to be avoided.<sup id="cite_ref-Angelescu_4-2" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 385">: 385 </span></sup>
</p><p>To avoid the problems associated with redundant links in a switched LAN, STP is implemented on switches to monitor the network topology. Every link between switches, and in particular redundant links, are catalogued. The spanning-tree algorithm then blocks forwarding on redundant links by setting up one preferred link between switches in the LAN. This preferred link is used for all Ethernet frames unless it fails, in which case a non-preferred redundant link is enabled. When implemented in a network, STP designates one layer-2 switch as <i>root bridge</i>. All switches then select their best connection towards the root bridge for forwarding and block other redundant links. All switches constantly communicate with their neighbors in the LAN using <a href="#Bridge_protocol_data_units">§ Bridge protocol data units</a> (BPDUs).<sup id="cite_ref-Angelescu_4-3" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 388">: 388 </span></sup>
</p><p>Provided there is more than one link between two switches, the STP root bridge calculates the cost of each path based on bandwidth. STP will select the path with the lowest cost, that is the highest bandwidth, as the preferred link. STP will enable this preferred link as the only path to be used for Ethernet frames between the two switches, and disable all other possible links by designating the switch ports that connect the preferred path as <i>root port</i>.<sup id="cite_ref-Angelescu_4-4" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 393">: 393 </span></sup>
</p><p>After STP enabled switches in a LAN have elected the root bridge, all non-root bridges assign one of their ports as root port. This is either the port that connects the switch to the root bridge, or if there are several paths, the port with the preferred path as calculated by the root bridge. Because not all switches are directly connected to the root bridge they communicate amongst each other using STP BPDUs. Each switch adds the cost of its own path to the cost received from the neighboring switches to determine the total cost of a given path to the root bridge. Once the cost of all possible paths to the root bridge have been added up, each switch assigns a port as root port which connects to the path with the lowest cost, or highest bandwidth, that will eventually lead to the root bridge.<sup id="cite_ref-Angelescu_4-5" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 394">: 394 </span></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Path_cost">Path cost</h3></div>
<table class="wikitable floatright" style="text-align: right">
<caption>Path cost for different port speed and STP variation
</caption>
<tbody><tr>
<th>Data rate<br>(link bandwidth)
</th>
<th>Original STP cost<br>(802.1D-1998)
</th>
<th>RSTP/MSTP cost<br>(recommended value)<sup id="cite_ref-802.1Q_3-1" class="reference"><a href="#cite_note-802.1Q-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 503">: 503 </span></sup>
</th></tr>
<tr>
<td><span class="nowrap">4 Mbit/s</span>
</td>
<td>250
</td>
<td>5,000,000
</td></tr>
<tr>
<td><span class="nowrap">10 Mbit/s</span>
</td>
<td>100
</td>
<td>2,000,000
</td></tr>
<tr>
<td><span class="nowrap">16 Mbit/s</span>
</td>
<td>62
</td>
<td>1,250,000
</td></tr>
<tr>
<td><span class="nowrap">100 Mbit/s</span>
</td>
<td>19
</td>
<td>200,000
</td></tr>
<tr>
<td><span class="nowrap">1 Gbit/s</span>
</td>
<td>4
</td>
<td>20,000
</td></tr>
<tr>
<td><span class="nowrap">2 Gbit/s</span>
</td>
<td>3
</td>
<td>10,000
</td></tr>
<tr>
<td><span class="nowrap">10 Gbit/s</span>
</td>
<td>2
</td>
<td>2,000
</td></tr>
<tr>
<td><span class="nowrap">100 Gbit/s</span>
</td>
<td>N/A
</td>
<td>200
</td></tr>
<tr>
<td><span class="nowrap">1 Tbit/s</span>
</td>
<td>N/A
</td>
<td>20
</td></tr></tbody></table>
<p>The STP path cost default was originally calculated by the formula <span class="texhtml"><style data-mw-deduplicate="TemplateStyles:r1214402035">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sfrac{white-space:nowrap}.mw-parser-output .sfrac.tion,.mw-parser-output .sfrac .tion{display:inline-block;vertical-align:-0.5em;font-size:85%;text-align:center}.mw-parser-output .sfrac .num{display:block;line-height:1em;margin:0.0em 0.1em;border-bottom:1px solid}.mw-parser-output .sfrac .den{display:block;line-height:1em;margin:0.1em 0.1em}.mw-parser-output .sr-only{border:0;clip:rect(0,0,0,0);clip-path:polygon(0px 0px,0px 0px,0px 0px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
/* end https://en.wikipedia.org/ */
</style><span class="sfrac"><span class="tion"><span class="num">1 Gbit/s</span><span class="sr-only">/</span><span class="den">bandwidth</span></span></span></span>. When faster speeds became available, the default values were adjusted as otherwise speeds above <span class="nowrap">1 Gbit/s</span> would have been indistinguishable by STP. Its successor RSTP uses a similar formula with a larger numerator: <span class="texhtml"><span class="sfrac"><span class="tion"><span class="num">20 Tbit/s</span><span class="sr-only">/</span><span class="den">bandwidth</span></span></span></span>. These formulas lead to the sample values in the table.<sup id="cite_ref-802.1D-2004_5-0" class="reference"><a href="#cite_note-802.1D-2004-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 154">: 154 </span></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Port_states">Port states</h3></div>
<p>All switch ports in the LAN where STP is enabled are categorized.<sup id="cite_ref-Angelescu_4-6" class="reference"><a href="#cite_note-Angelescu-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 388">: 388 </span></sup>
</p>
<dl><dt>Blocking</dt>
<dd>A port that would cause a switching loop if it were active. To prevent the use of looped paths, no user data is sent or received over a blocking port. BPDU data is still received in blocking state. A blocked port may go into forwarding mode if the other links in use fail and the spanning tree algorithm determines the port may transition to the forwarding state.</dd>
<dt>Listening</dt>
<dd>The switch processes BPDUs and awaits possible new information that would cause it to return to the blocking state. It does not populate the <a href="MAC_table" class="mw-redirect" title="MAC table">MAC table</a> and it does not forward frames.</dd>
<dt>Learning</dt>
<dd>While the port does not yet forward frames, it does learn source addresses from frames received and adds them to the MAC table.</dd>
<dt>Forwarding</dt>
<dd>A port in normal operation receiving and forwarding frames. The port monitors incoming BPDUs that would indicate it should return to the blocking state to prevent a loop.</dd>
<dt>Disabled</dt>
<dd>A network administrator has manually disabled the switch port.</dd></dl>
<p>When a device is first attached to a switch port, it will not immediately start to forward data. It will instead go through a number of states while it processes BPDUs and determines the topology of the network. The port attached to a host such as a computer, printer or <a href="Server_(computing)" title="Server (computing)">server</a> always goes into the forwarding state, albeit after a delay of about 30 seconds while it goes through the listening and learning states. The time spent in the listening and learning states is determined by a value known as the forward delay (default 15 seconds and set by the root bridge). If another switch is connected, the port may remain in blocking mode if it is determined that it would cause a loop in the network. Topology change notification (TCN) BPDUs are used to inform other switches of port changes. TCNs are injected into the network by a non-root switch and propagated to the root. Upon receipt of the TCN, the root switch will set the topology change flag in its normal BPDUs. This flag is propagated to all other switches and instructs them to rapidly age out their forwarding table entries.
</p>
<div class="mw-heading mw-heading2"><h2 id="Configuration">Configuration</h2></div>
<p>Before configuring STP, the network topology should be carefully planned.<sup id="cite_ref-CCNPCSG_6-0" class="reference"><a href="#cite_note-CCNPCSG-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Pages: 506, 511">: 506, 511 </span></sup> Basic configuration requires that STP be enabled on all switches in the LAN and the same version of STP chosen on each. The administrator may determine which switch will be the root bridge and configure the switches appropriately. If the root bridge goes down, the protocol will automatically assign a new root bridge based on bridge ID. If all switches have the same bridge ID, such as the default ID, and the root bridge goes down, a tie situation arises and the protocol will assign one switch as root bridge based on the switch MAC addresses. Once the switches have been assigned a bridge ID and the protocol has chosen the root bridge switch, the best path to the root bridge is calculated based on port cost, path cost and port priority.<sup id="cite_ref-CCNPCSG_6-1" class="reference"><a href="#cite_note-CCNPCSG-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page: 506">: 506 </span></sup> Ultimately STP calculates the path cost on the basis of the bandwidth of a link, however links between switches may have the same bandwidth. Administrators can influence the protocol's choice of the preferred path by configuring the port cost; the lower the port cost the more likely it is that the protocol will choose the connected link as root port for the preferred path.<sup id="cite_ref-CCNPCSG_6-2" class="reference"><a href="#cite_note-CCNPCSG-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page: 511">: 511 </span></sup> The selection of how other switches in the topology choose their root port, or the least cost path to the root bridge, can be influenced by the port priority. The highest priority will mean the path will ultimately be less preferred. If all ports of a switch have the same priority, the port with the lowest number is chosen to forward frames.<sup id="cite_ref-CCNPCSG_6-3" class="reference"><a href="#cite_note-CCNPCSG-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page: 513">: 513 </span></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Root_bridge_and_the_bridge_ID">Root bridge and the bridge ID</h3></div>
<p>The <i>root bridge</i> of the spanning tree is the bridge with the smallest (lowest) bridge ID. Each bridge has a configurable priority number and a MAC address; the bridge ID is the <a href="Concatenation" title="Concatenation">concatenation</a> of the bridge priority and the MAC address. For example, the ID of a bridge with priority 32,768 and MAC <span style="padding-right: 1px;"><span class="macaddr"><i>0200.0000.1111</i></span></span> is <span style="padding-right: 1px;"><span class="macaddr"><i>32768.0200.0000.1111</i></span></span>. The bridge priority default is 32,768 and can be configured only in multiples of 4096.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup> When comparing two bridge IDs, the priority portions are compared first and the MAC addresses are compared only if the priorities are equal. The switch with the lowest priority of all the switches will be the root; if there is a tie, then the switch with the lowest priority and lowest MAC address will be the root. For example, if switches <i>A</i> (MAC = <span style="padding-right: 1px;"><span class="macaddr"><i>0200.0000.1111</i></span></span>) and <i>B</i> (MAC = <span style="padding-right: 1px;"><span class="macaddr"><i>0200.0000.2222</i></span></span>) both have a priority of 32,768 then switch <i>A</i> will be selected as the root bridge.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>b<span class="cite-bracket">]</span></a></sup> If the network administrators would like switch <i>B</i> to become the root bridge, they must set its priority to be less than 32,768.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>c<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Path_to_the_root_bridge">Path to the root bridge</h3></div>
<p>The sequence of events to determine the best received BPDU (which is the best path to the root) is:
</p>
<ol><li>Lowest root bridge ID (BID) – Determines the root bridge.</li>
<li>Lowest cost to the root bridge – Favors the upstream switch with the least cost to root</li>
<li>Lowest sender bridge ID – Serves as a tiebreaker if multiple upstream switches have equal cost to root</li>
<li>Lowest sender port ID – Serves as a tiebreaker if a switch has multiple (non-<a href="EtherChannel" title="EtherChannel">EtherChannel</a>) links to a single upstream switch, where:
<ul><li>Bridge ID = priority (4 bits) + locally assigned system ID extension (12 bits) + ID [MAC address] (48 bits); the default bridge priority is 32,768, and</li>
<li>Port ID = priority (4 bits) + ID (Interface number) (12 bits); the default port priority is 128.</li></ul></li></ol>
<div class="mw-heading mw-heading3"><h3 id="Tiebreakers">Tiebreakers</h3></div>
<dl><dt>Root ports</dt>
<dd>When multiple paths from a bridge are least-cost paths, the chosen path uses the neighbor bridge with the lower bridge ID. The root port is thus the one connecting to the bridge with the lowest bridge ID. For example, in the figures, if switch 4 were connected to <a href="Network_segment" title="Network segment">network segment</a> d instead of segment f, there would be two paths of length 2 to the root, one path going through bridge 24 and the other through bridge 92. Because there are two least-cost paths, the lower bridge ID (24) would be used as the tiebreaker in choosing which path to use.</dd>
<dt>Paths</dt>
<dd>When more than one bridge on a segment leads to a least-cost path to the root, the bridge with the lower bridge ID is used to forward messages to the root. The port attaching that bridge to the network segment is the <i>designated port</i> for the segment. In the figures, there are two least-cost paths from network segment d to the root, one going through bridge 24 and the other through bridge 92. The lower bridge ID is 24, so the tiebreaker dictates that the designated port is the port through which network segment d is connected to bridge 24. If bridge IDs were equal, then the bridge with the lowest MAC address would have the designated port. In either case, the loser sets the port as being blocked.</dd>
<dt>Designated ports</dt>
<dd>When the root bridge has more than one port on a single network segment, the bridge ID is effectively tied, as are all root path costs (all equal zero). The port on that network segment with the lowest port ID becomes the designated port. It is put into forwarding mode while all other ports on the root bridge on that same network segment become non-designated ports and are put into blocking mode.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Not all bridge manufacturers follow this rule, instead making all root bridge ports designated ports, and putting them all in forwarding mode.</dd>
<dt>Final tiebreaker</dt>
<dd>In some cases, there may still be a tie, as when the root bridge has multiple active ports on the same network segment (see above) with equally low root path costs and bridge IDs, or, in other cases, multiple bridges are connected by multiple cables and multiple ports. In each case, a single bridge may have multiple candidates for its root port. In these cases, candidates for the root port have already received BPDUs offering equally-low (i.e. the "best") root path costs and equally-low (i.e. the "best") bridge IDs, and the final tiebreaker goes to the port that received the lowest (i.e. the "best") port priority ID, or port ID.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Bridge_protocol_data_units">Bridge protocol data units</h2></div>
<p>The above rules describe one way of determining what spanning tree will be computed by the algorithm, but the rules as written require knowledge of the entire network. The <a href="Network_bridge" title="Network bridge">bridges</a> have to determine the root bridge and compute the port roles (root, designated, or blocked) with only the information that they have. To ensure that each bridge has enough information, the bridges use special data <a href="Frame_(networking)" title="Frame (networking)">frames</a> called bridge protocol data units (BPDUs) to exchange information about the Spanning Tree Protocol, bridge IDs, and root path costs.
</p>
<table class="wikitable" style="text-align: center; border: none;">
<caption>Example <a href="IEEE_802.3" title="IEEE 802.3">802.3 Ethernet</a> frame<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> with a Spanning Tree BPDU
</caption>
<tbody><tr>
<th style="min-width:42px; border-bottom:none; border-right:none;"><i>Offset</i>
</th>
<th style="border-left:none;"><a href="Octet_(computing)" title="Octet (computing)">Octet</a>
</th>
<th colspan="8">0
</th>
<th colspan="8">1
</th>
<th colspan="8">2
</th>
<th colspan="8">3
</th></tr>
<tr>
<th style="min-width: 42px;border-top: none;">Octet
</th>
<th style="min-width: 42px;"><a href="Bit" title="Bit">Bit</a>
</th>
<th style="min-width:11px;">0
</th>
<th style="min-width:11px;">1
</th>
<th style="min-width:11px;">2
</th>
<th style="min-width:11px;">3
</th>
<th style="min-width:11px;">4
</th>
<th style="min-width:11px;">5
</th>
<th style="min-width:11px;">6
</th>
<th style="min-width:11px;">7
</th>
<th style="min-width:11px;">8
</th>
<th style="min-width:11px;">9
</th>
<th style="min-width:16px;">10
</th>
<th style="min-width:16px;">11
</th>
<th style="min-width:16px;">12
</th>
<th style="min-width:16px;">13
</th>
<th style="min-width:16px;">14
</th>
<th style="min-width:16px;">15
</th>
<th style="min-width:16px;">16
</th>
<th style="min-width:16px;">17
</th>
<th style="min-width:16px;">18
</th>
<th style="min-width:16px;">19
</th>
<th style="min-width:16px;">20
</th>
<th style="min-width:16px;">21
</th>
<th style="min-width:16px;">22
</th>
<th style="min-width:16px;">23
</th>
<th style="min-width:16px;">24
</th>
<th style="min-width:16px;">25
</th>
<th style="min-width:16px;">26
</th>
<th style="min-width:16px;">27
</th>
<th style="min-width:16px;">28
</th>
<th style="min-width:16px;">29
</th>
<th style="min-width:16px;">30
</th>
<th style="min-width:16px;">31
</th></tr>
<tr>
<th style="width:35px;">0
</th>
<th style="width:30px;">0
</th>
<td colspan="32" style="border-bottom: none;"><i>Source MAC<span class="nowrap"> </span>(<span style="padding-right: 1px;"><span class="macaddr"><i>5C:A4:7D:1A:52:10</i></span></span>)</i>
</td></tr>
<tr>
<th style="width:35px;">4
</th>
<th style="width:30px;">32
</th>
<td colspan="16" style="border-top: none;"><i><span class="nowrap"> </span></i>
</td>
<td colspan="16" style="border-bottom: none;"><i><span class="nowrap"> </span></i>
</td></tr>
<tr>
<th style="width:35px;">8
</th>
<th style="width:30px;">64
</th>
<td colspan="32" style="border-top: none;"><i><abbr title="Destination MAC (STP multicast address)">Destination MAC</abbr><span class="nowrap"> </span>(<span style="padding-right: 1px;"><span class="macaddr"><i>01:80:C2:00:00:00</i></span></span>)</i>
</td></tr>
<tr>
<th style="width:35px;">12
</th>
<th style="width:30px;">96
</th>
<td colspan="16"><i>Length</i>
</td>
<td colspan="16" style="border-right: none;"><i>Logical Link Control Header</i><span style="float: right; font-weight: bold">↴</span>
</td></tr>
<tr>
<th style="width:35px;">16
</th>
<th style="width:30px;">128
</th>
<td colspan="8" style="border-left: none;"><i><span style="float: left;">↪</span>LLC (cont.)</i>
</td>
<td colspan="24" style="background: mistyrose;border-bottom: none;"><i><span class="nowrap"> </span></i>
</td></tr>
<tr>
<th style="width:35px;">20
</th>
<th style="width:30px;">160
</th>
<td colspan="32" rowspan="3" style="background: mistyrose;border-top: none;"><i>BPDU payload</i>
</td></tr>
<tr>
<th>24
</th>
<th>192
</th></tr>
<tr>
<th>⋮
</th>
<th>⋮
</th></tr>
<tr>
<th style="width:35px;">⋮
</th>
<th style="width:30px;">⋮
</th>
<td colspan="32"><i>Frame Check Sequence</i>
</td></tr></tbody></table>
<dl><dt>Source MAC: 48 bits</dt>
<dd>A bridge sends a BPDU frame using the unique MAC address of the port itself as a source address. Address <span style="padding-right: 1px;"><span class="macaddr"><i>5C:A4:7D:1A:52:10</i></span></span> is an example.</dd>
<dt>Destination MAC: 48 bits</dt>
<dd>The destination MAC address is an STP <a href="Multicast_address" title="Multicast address">multicast address</a>. The <a href="IEEE_802" title="IEEE 802">IEEE 802</a> standard <i>Bridge Group Address</i> is <span style="padding-right: 1px;"><span class="macaddr"><i>01:80:C2:00:00:00</i></span></span>.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> However, several proprietary destination MAC addresses for STP exist, like the <a href="#Per-VLAN_Spanning_Tree_and_Per-VLAN_Spanning_Tree_Plus">Cisco proprietary Per-VLAN Spanning Tree</a> address <span style="padding-right: 1px;"><span class="macaddr"><i>01:00:0C:CC:CC:CD</i></span></span><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> or the <a href="Extreme_Networks" title="Extreme Networks">Extreme Networks</a> address <span style="padding-right: 1px;"><span class="macaddr"><i>03:04:08:00:07:00</i></span></span>, and may be used instead of the standard.</dd>
<dt>Length: 16 bits</dt>
<dd>Combined length of the LLC Header, BPDU payload, and FCS.</dd>
<dt>Logical Link Control<span class="nowrap"> </span>(LLC): 24 bits</dt>
<dd>Logical Link Control Header.</dd>
<dt>BPDU Payload: Variable</dt>
<dd>The BPDU itself.</dd>
<dt>Frame Check Sequence<span class="nowrap"> </span>(FCS): 32 bits</dt>
<dd>Checksum of the frame.</dd></dl>
<p>BPDUs are exchanged regularly (every 2 seconds by default) and enable switches to keep track of network changes and to start and stop forwarding at ports as required. To prevent the delay when connecting hosts to a switch and during some topology changes, <a href="#Rapid_Spanning_Tree_Protocol">Rapid STP</a> was developed, which allows a switch port to rapidly transition into the forwarding state during these situations.
</p>
<div class="mw-heading mw-heading3"><h3 id="BPDU_types">BPDU types</h3></div>
<p>There are two types of BPDUs in the original STP specification (802.1D)<sup id="cite_ref-802.1D-2004_5-1" class="reference"><a href="#cite_note-802.1D-2004-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 63">: 63 </span></sup> (the Rapid Spanning Tree (RSTP) extension uses a specific RSTP BPDU).
</p><p>IEEE 802.1D and <a href="IEEE_802.1aq" title="IEEE 802.1aq">IEEE 802.1aq</a> BPDUs have the following format:
</p>
<table class="wikitable" style="text-align: center; border: none;">
<caption>Topology Change Notificatation BPDU
</caption>
<tbody><tr>
<th style="min-width:42px; border-bottom:none; border-right:none;"><i>Offset</i>
</th>
<th style="border-left:none;"><a href="Octet_(computing)" title="Octet (computing)">Octet</a>
</th>
<th colspan="8">0
</th>
<th colspan="8">1
</th>
<th colspan="8">2
</th>
<th colspan="8">3
</th></tr>
<tr>
<th style="min-width: 42px;border-top: none;">Octet
</th>
<th style="min-width: 42px;"><a href="Bit" title="Bit">Bit</a>
</th>
<th style="min-width:11px;">0
</th>
<th style="min-width:11px;">1
</th>
<th style="min-width:11px;">2
</th>
<th style="min-width:11px;">3
</th>
<th style="min-width:11px;">4
</th>
<th style="min-width:11px;">5
</th>
<th style="min-width:11px;">6
</th>
<th style="min-width:11px;">7
</th>
<th style="min-width:11px;">8
</th>
<th style="min-width:11px;">9
</th>
<th style="min-width:16px;">10
</th>
<th style="min-width:16px;">11
</th>
<th style="min-width:16px;">12
</th>
<th style="min-width:16px;">13
</th>
<th style="min-width:16px;">14
</th>
<th style="min-width:16px;">15
</th>
<th style="min-width:16px;">16
</th>
<th style="min-width:16px;">17
</th>
<th style="min-width:16px;">18
</th>
<th style="min-width:16px;">19
</th>
<th style="min-width:16px;">20
</th>
<th style="min-width:16px;">21
</th>
<th style="min-width:16px;">22
</th>
<th style="min-width:16px;">23
</th>
<th style="min-width:16px;">24
</th>
<th style="min-width:16px;">25
</th>
<th style="min-width:16px;">26
</th>
<th style="min-width:16px;">27
</th>
<th style="min-width:16px;">28
</th>
<th style="min-width:16px;">29
</th>
<th style="min-width:16px;">30
</th>
<th style="min-width:16px;">31
</th></tr>
<tr>
<th style="width:35px;">0
</th>
<th style="width:30px;">0
</th>
<td colspan="16"><i>Protocol ID<span class="nowrap"> </span>(<style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced">0x0000</span>)</i>
</td>
<td colspan="8"><i>Version ID<span class="nowrap"> </span>(<span class="monospaced">0x00</span>)</i>
</td>
<td colspan="8"><i>BPDU Type<span class="nowrap"> </span>(<span class="monospaced">0x80</span>)</i>
</td></tr></tbody></table>
<dl><dt>Protocol ID: 16 bits</dt>
<dd>Protocol ID value. This is set to <span class="monospaced">0x0000</span> for all BPDUs.</dd>
<dt>Version ID: 8 bits</dt>
<dd>Version ID. Set to <span class="monospaced">0x00</span> for TCN BPDUs.</dd>
<dt>BPDU Type: 8 bits</dt>
<dd>BPDU Type is set to <span class="monospaced">0x80</span> for TCN BPDUs.</dd></dl>
<p>Topology change notification (TCN) BPDU, used to announce changes in the network topology, such as port up or port down.
</p>
<table class="wikitable" style="text-align: center; border: none;">
<caption>Configuration BPDU
</caption>
<tbody><tr>
<th style="min-width:42px; border-bottom:none; border-right:none;"><i>Offset</i>
</th>
<th style="border-left:none;"><a href="Octet_(computing)" title="Octet (computing)">Octet</a>
</th>
<th colspan="8">0
</th>
<th colspan="8">1
</th>
<th colspan="8">2
</th>
<th colspan="8">3
</th></tr>
<tr>
<th style="min-width: 42px;border-top: none;">Octet
</th>
<th style="min-width: 42px;"><a href="Bit" title="Bit">Bit</a>
</th>
<th style="min-width:11px;">0
</th>
<th style="min-width:11px;">1
</th>
<th style="min-width:11px;">2
</th>
<th style="min-width:11px;">3
</th>
<th style="min-width:11px;">4
</th>
<th style="min-width:11px;">5
</th>
<th style="min-width:11px;">6
</th>
<th style="min-width:11px;">7
</th>
<th style="min-width:11px;">8
</th>
<th style="min-width:11px;">9
</th>
<th style="min-width:16px;">10
</th>
<th style="min-width:16px;">11
</th>
<th style="min-width:16px;">12
</th>
<th style="min-width:16px;">13
</th>
<th style="min-width:16px;">14
</th>
<th style="min-width:16px;">15
</th>
<th style="min-width:16px;">16
</th>
<th style="min-width:16px;">17
</th>
<th style="min-width:16px;">18
</th>
<th style="min-width:16px;">19
</th>
<th style="min-width:16px;">20
</th>
<th style="min-width:16px;">21
</th>
<th style="min-width:16px;">22
</th>
<th style="min-width:16px;">23
</th>
<th style="min-width:16px;">24
</th>
<th style="min-width:16px;">25
</th>
<th style="min-width:16px;">26
</th>
<th style="min-width:16px;">27
</th>
<th style="min-width:16px;">28
</th>
<th style="min-width:16px;">29
</th>
<th style="min-width:16px;">30
</th>
<th style="min-width:16px;">31
</th></tr>
<tr>
<th style="width:35px;">0
</th>
<th style="width:30px;">0
</th>
<td colspan="16"><i>Protocol ID<span class="nowrap"> </span>(<span class="monospaced">0x0000</span>)</i>
</td>
<td colspan="8"><i>Version ID</i>
</td>
<td colspan="8"><i>BPDU Type</i>
</td></tr>
<tr>
<th style="width:35px;">4
</th>
<th style="width:30px;">32
</th>
<td colspan="8"><i>Flags</i>
</td>
<td colspan="24" style="border-bottom: none;"><i><span class="nowrap"> </span></i>
</td></tr>
<tr>
<th style="width:35px;">8
</th>
<th style="width:30px;">64
</th>
<td colspan="32" style="border-top: none; border-bottom: none;"><i>Root ID</i>
</td></tr>
<tr>
<th style="width:35px;">12
</th>
<th style="width:30px;">96
</th>
<td colspan="8" style="border-top: none;"><i><span class="nowrap"> </span></i>
</td>
<td colspan="24" style="border-right: none;"><i>Root Path Cost</i><span style="float: right; font-weight: bold">↴</span>
</td></tr>
<tr>
<th style="width:35px;">16
</th>
<th style="width:30px;">128
</th>
<td colspan="8" style="border-left: none;"><i><span style="float: left;">↪</span>Root Path Cost (cont.)</i>
</td>
<td colspan="24" style="border-bottom: none;"><i><span class="nowrap"> </span></i>
</td></tr>
<tr>
<th style="width:35px;">20
</th>
<th style="width:30px;">160
</th>
<td colspan="32" style="border-top: none; border-bottom: none;"><i>Bridge ID</i>
</td></tr>
<tr>
<th style="width:35px;">24
</th>
<th style="width:30px;">192
</th>
<td colspan="8" style="border-top: none;"><i><span class="nowrap"> </span></i>
</td>
<td colspan="16"><i>Port ID</i>
</td>
<td colspan="8" style="border-right: none;"><i>Message Age</i><span style="float: right; font-weight: bold">↴</span>
</td></tr>
<tr>
<th style="width:35px;">28
</th>
<th style="width:30px;">224
</th>
<td colspan="8" style="border-left: none;"><i><span style="float: left;">↪</span>Message Age (cont.)</i>
</td>
<td colspan="16"><i>Max Age</i>
</td>
<td colspan="8" style="border-right: none;"><i>Hello Time</i><span style="float: right; font-weight: bold">↴</span>
</td></tr>
<tr>
<th style="width:35px;">32
</th>
<th style="width:30px;">256
</th>
<td colspan="8" style="border-left: none;"><i><span style="float: left;">↪</span>Hello Time (cont.)</i>
</td>
<td colspan="16"><i>Forward Delay</i>
</td>
<td colspan="8"><i>Version 1 Length</i>
</td></tr>
<tr>
<th style="width:35px;">36
</th>
<th style="width:30px;">288
</th>
<td colspan="16" style="background: linen;"><i>(Version 3 Length)</i>
</td></tr></tbody></table>
<dl><dt>Protocol ID: 16 bits</dt>
<dd>Protocol ID value. This is set to <span class="monospaced">0x0000</span> for all BPDUs and represents 802.1D.</dd>
<dt>Version ID: 8 bits</dt>
<dd>Version ID. Set to <span class="monospaced">0x00</span> for Config and TCN BPDUs; <span class="monospaced">0x02</span> indicates a RST BPDU; <span class="monospaced">0x03</span> indicates an MST BPDU; and <span class="monospaced">0x04</span> indicates an STP BPDU.</dd>
<dt>BPDU Type: 8 bits</dt>
<dd>BPDU Type is set to <span class="monospaced">0x80</span> for TCN BPDUs.</dd>
<dt>Flags: 8 bits</dt>
<dd>Flags.
<dl><dt>Topology Change: 1 bit</dt>
<dd>0 or 1 for Topology Change.</dd>
<dt>Proposal: 1 bit</dt>
<dd>0 (unused) or 1 for Proposal in RST/MST/SPT BPDU.</dd>
<dt>Port Role: 2 bits</dt>
<dd>00 (unused) or<br>01 for Port Role Alternate/Backup in RST/MST/SPT BPDU.<br>10 for Port Role Root in RST/MST/SPT BPDU.<br>11 for Port Role Designated in RST/MST/SPT BPD.</dd>
<dt>Learning: 1 bit</dt>
<dd>0 (unused) or 1 for Learning in RST/MST/SPT BPDU.</dd>
<dt>Forwarding: 1 bit</dt>
<dd>0 (unused) or 1 for Forwarding in RST/MST/SPT BPDU.</dd>
<dt>Agreement: 1 bit</dt>
<dd>0 (unused) or 1 for Agreement in RST/MST/SPT BPDU.</dd>
<dt>TCA: 1 bit</dt>
<dd>0 or 1 for Topology Change Acknowledgement.</dd></dl></dd></dl>
<dl><dt>Root ID: 64 bits</dt>
<dd>CIST Root ID in MST/SPT BPDU.<br>This field is divided into three parts:
<dl><dt>Priority: 4 bits</dt>
<dd>Root Bridge Priority.</dd>
<dt>System ID Extension: 12 bits</dt>
<dd>Root Bridge System ID Extension.</dd>
<dt>MAC Address: 48 bits</dt>
<dd>Root Bridge MAC Address.</dd></dl></dd></dl>
<dl><dt>Root Path Cost: 32 bits</dt>
<dd>CIST External Path Cost in MST/SPT BPDU</dd>
<dt>Bridge ID: 64 bits</dt>
<dd>CIST Regional Root ID in MST/SPT BPDU.<br>This field is divided into three parts:
<dl><dt>Priority: 4 bits</dt>
<dd>Bridge Priority.</dd>
<dt>System ID Extension: 12 bits</dt>
<dd>Bridge System ID Extension.</dd>
<dt>MAC Address: 48 bits</dt>
<dd>Bridge MAC Address.</dd></dl></dd></dl>
<dl><dt>Port ID: 2 bytes</dt>
<dd>Port ID.</dd>
<dt>Message Age: 2 bytes</dt>
<dd>In 1/256 secs.</dd>
<dt>Max Age: 2 bytes</dt>
<dd>In 1/256 secs.</dd>
<dt>Hello Time: 2 bytes</dt>
<dd>In 1/256 secs.</dd>
<dt>Forward Delay: 2 bytes</dt>
<dd>In 1/256 secs.</dd>
<dt>Version 1 Length: 1 byte</dt>
<dd><span class="monospaced">0x00</span> no ver 1 protocol info present. RST, MST, SPT BPDU only.</dd>
<dt>Version 3 Length: 2 bytes</dt>
<dd>Version 3 only; MST, SPT BPDU only.</dd></dl>
<p>Configuration BPDU (CBPDU), used for spanning tree computation and sent by root bridges to provide information to all switches.
</p>
<div class="mw-heading mw-heading2"><h2 id="Spanning_Tree_Protocol_standards">Spanning Tree Protocol standards</h2></div>
<p>The first Spanning Tree Protocol was invented in 1985 at the Digital Equipment Corporation by <a href="Radia_Perlman" title="Radia Perlman">Radia Perlman</a>.<sup id="cite_ref-perlman_paper_1-1" class="reference"><a href="#cite_note-perlman_paper-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> In 1990, the IEEE published the first standard for the protocol as 802.1D,<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> based on the algorithm designed by Perlman. Subsequent versions were published in 1998<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> and 2004,<sup id="cite_ref-standard_18-0" class="reference"><a href="#cite_note-standard-18"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> incorporating various extensions. The original Perlman-inspired Spanning Tree Protocol, called DEC STP, is not a standard and differs from the IEEE version in message format as well as timer settings. Some bridges implement both the IEEE and the DEC versions of the Spanning Tree Protocol, but their interworking can create issues for the network administrator.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p><p>Different implementations of a standard are not guaranteed to <a href="Interoperate" class="mw-redirect" title="Interoperate">interoperate</a>, due for example to differences in default timer settings. The IEEE encourages vendors to provide a <a href="Protocol_Implementation_Conformance_Statement" class="mw-redirect" title="Protocol Implementation Conformance Statement">Protocol Implementation Conformance Statement</a>, declaring which capabilities and options have been implemented,<sup id="cite_ref-standard_18-1" class="reference"><a href="#cite_note-standard-18"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> to help users determine whether different implementations will interoperate correctly.
</p>
<div class="mw-heading mw-heading3"><h3 id="Rapid_Spanning_Tree_Protocol">Rapid Spanning Tree Protocol</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="Real_Time_Streaming_Protocol" class="mw-redirect" title="Real Time Streaming Protocol">Real Time Streaming Protocol</a>.</div>
<p>In 2001, the <a href="IEEE" class="mw-redirect" title="IEEE">IEEE</a> introduced Rapid Spanning Tree Protocol (RSTP) as <b>IEEE 802.1w</b>. RSTP was then incorporated into IEEE 802.1D-2004 making the original STP standard obsolete.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> RSTP was designed to be backward-compatible with standard STP.
</p><p>RSTP provides significantly faster spanning tree convergence after a topology change, introducing new convergence behaviors and bridge port roles to accomplish this. While STP can take 30 to 50 seconds to respond to a topology change, RSTP is typically able to respond to changes within 3 × <i>hello times</i> (default: 3 <span class="nowrap"> × </span> 2 seconds) or within a few milliseconds of a physical link failure. The hello time is an important and configurable time interval that is used by RSTP for several purposes; its default value is 2 seconds.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Rapid_Spanning_Tree_operation">Rapid Spanning Tree operation</h4></div>
<p>RSTP adds new bridge port roles in order to speed convergence following a link failure:
</p>
<ul><li><b>Root</b> – A forwarding port that is the best port from non-root bridge to root bridge</li>
<li><b>Designated</b> – A forwarding port for every network segment</li>
<li><b>Alternate</b> – An alternate path to the root bridge. This path is different from using the root port</li>
<li><b>Backup</b> – A backup/redundant path to a segment where another bridge port already connects</li>
<li><b>Disabled</b> – Not strictly part of STP, a network administrator can manually disable a port</li></ul>
<p>The number of switch port states a port can be in has been reduced to three instead of STP's original five:
</p>
<ul><li><b>Discarding</b> – No user data is sent over the port</li>
<li><b>Learning</b> – The port is not forwarding frames yet, but is populating its MAC address table</li>
<li><b>Forwarding</b> – The port is fully operational</li></ul>
<p>RSTP operational details:
</p>
<ul><li>Detection of root switch failure is done in 3 hello times, which is 6 seconds if the default hello times have not been changed.</li>
<li>Ports may be configured as edge ports if they are attached to a LAN that has no other bridges attached (depending on vendor, <i>admin-edge</i> or <i>portfast</i> mode). These edge ports transition directly to the forwarding state, avoiding problems with hosts expecting an upcoming link to work right away, e.g. with <a href="DHCP" class="mw-redirect" title="DHCP">DHCP</a>. RSTP still continues to monitor the port for BPDUs in case a bridge is connected. RSTP can also be configured to automatically detect edge ports. As soon as the bridge detects a BPDU coming to an edge port, the port becomes a non-edge port.</li>
<li>RSTP calls the connection between two or more switches as a "link-type" connection. A port that operates in full-duplex mode is assumed to be point-to-point link, whereas a half-duplex port (through a hub) is considered a shared port by default. This automatic link type setting can be overridden by explicit configuration. RSTP improves convergence on point-to-point links by reducing the Max-Age time to 3 times Hello interval, removing the STP listening state, and exchanging a handshake between two switches to quickly transition the port to forwarding state. RSTP does not do anything differently from STP on shared links.</li>
<li>Unlike in STP, RSTP will respond to BPDUs sent from the direction of the root bridge. An RSTP bridge will <i>propose</i> its spanning tree information to its designated ports. If another RSTP bridge receives this information and determines this is the superior root information, it sets all its other ports to discarding. The bridge may send an <i>agreement</i> to the first bridge confirming its superior spanning tree information. The first bridge, upon receiving this agreement, knows it can rapidly transition that port to the forwarding state bypassing the listening/learning state transition. This essentially creates a cascading effect away from the root bridge where each designated bridge proposes to its neighbors to determine if it can make a rapid transition. This is one of the major elements that allows RSTP to achieve faster convergence times than STP.</li>
<li>As discussed in the port role details above, RSTP maintains backup details regarding the discarding status of ports. This avoids timeouts if the current forwarding ports were to fail or BPDUs were not received on the root port in a certain interval.</li>
<li>RSTP will revert to legacy STP on an interface if a legacy version of an STP BPDU is detected on that port.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Standards_for_VLANs">Standards for VLANs</h2></div>
<p>STP and RSTP do not segregate switch ports by VLAN.<sup id="cite_ref-Solomon_23-0" class="reference"><a href="#cite_note-Solomon-23"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> However, in <a href="Ethernet" title="Ethernet">Ethernet</a> switched environments where multiple <a href="VLAN" title="VLAN">VLANs</a> exist, it is often desirable to create multiple spanning trees so that traffic on different VLANs uses different links.
</p>
<div class="mw-heading mw-heading3"><h3 id="Proprietary_standards">Proprietary standards</h3></div>
<p>Before the IEEE published a Spanning Tree Protocol standard for VLANs, a number of vendors who sold VLAN-capable switches developed their own Spanning Tree Protocol versions that were VLAN capable. <a href="Cisco" title="Cisco">Cisco</a> developed, implemented and published the <b>Per-VLAN Spanning Tree</b> (<b>PVST</b>) <a href="Proprietary_protocol" title="Proprietary protocol">proprietary protocol</a> using its own proprietary <a href="Cisco_Inter-Switch_Link" title="Cisco Inter-Switch Link">Inter-Switch Link</a> (ISL) for VLAN <a href="Encapsulation_(networking)" title="Encapsulation (networking)">encapsulation</a>, and PVST+ which uses <a href="802.1Q" class="mw-redirect" title="802.1Q">802.1Q</a> VLAN encapsulation. Both standards implement a separate spanning tree for every VLAN. Cisco switches now commonly implement PVST+ and can only implement Spanning Trees for VLANs if the other switches in the LAN implement the same VLAN STP protocol. HP provides PVST and PVST+ compatibility in some of its network switches.<sup id="cite_ref-Solomon_23-1" class="reference"><a href="#cite_note-Solomon-23"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> Some devices from <a href="Force10_Networks" class="mw-redirect" title="Force10 Networks">Force10 Networks</a>, <a href="Alcatel-Lucent" title="Alcatel-Lucent">Alcatel-Lucent</a>, <a href="Extreme_Networks" title="Extreme Networks">Extreme Networks</a>, <a href="Avaya" title="Avaya">Avaya</a>, <a href="Brocade_Communications_Systems" title="Brocade Communications Systems">Brocade Communications Systems</a> and <a href="BLADE_Network_Technologies" class="mw-redirect" title="BLADE Network Technologies">BLADE Network Technologies</a> support PVST+.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> Extreme Networks does so with two limitations: Lack of support on ports where the VLAN is untagged/native, and also on the VLAN with ID 1. PVST+ can tunnel across an MSTP Region.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p><p>The switch vendor <a href="Juniper_Networks" title="Juniper Networks">Juniper Networks</a> in turn developed and implemented its VLAN Spanning Tree Protocol (VSTP) to provide compatibility with Cisco's PVST, so that the switches from both vendors can be included in one LAN.<sup id="cite_ref-Solomon_23-2" class="reference"><a href="#cite_note-Solomon-23"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> The VSTP protocol is only supported by the EX and MX Series from Juniper Networks. There are two restrictions to the compatibility of VSTP:
</p>
<ol><li>VSTP supports only 253 different spanning-tree topologies. If there are more than 253 VLANs, it is recommended to configure RSTP in addition to VSTP, and VLANs beyond 253 will be handled by RSTP.</li>
<li><a href="MVRP" class="mw-redirect" title="MVRP">MVRP</a> does not support VSTP. If this protocol is in use, VLAN membership for trunk interfaces must be statically configured.<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup></li></ol>
<p>By default, VSTP uses the RSTP protocol as its core spanning-tree protocol, but usage of STP can be forced if the network includes old bridges.<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> More information about configuring VSTP on Juniper Networks switches was published in the official documentation.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup>
</p><p>Cisco also published a proprietary version of Rapid Spanning Tree Protocol. It creates a spanning tree for each VLAN, just like PVST. Cisco refers to this as <b>Rapid Per-VLAN Spanning Tree</b> (<b>RPVST</b>).
</p>
<div class="mw-heading mw-heading3"><h3 id="Multiple_Spanning_Tree_Protocol">Multiple Spanning Tree Protocol</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Multiple_Spanning_Tree_Protocol" title="Multiple Spanning Tree Protocol">Multiple Spanning Tree Protocol</a></div>
<p>The Multiple Spanning Tree Protocol (MSTP), originally defined in <a href="IEEE_802.1s" class="mw-redirect" title="IEEE 802.1s">IEEE 802.1s</a>-2002 and later merged into <a href="IEEE_802.1Q" title="IEEE 802.1Q">IEEE 802.1Q</a>-2005, defines an extension to RSTP to further develop the usefulness of VLANs.
</p><p>In the standard, a spanning tree that maps one or more VLANs is called a <i>multiple spanning tree</i> (MST). Under MSTP, a spanning tree can be defined for individual VLANs or for groups of VLANs. Furthermore, the administrator can define alternate paths within a spanning tree. Switches are first assigned to an MST region, then VLANs are mapped against or assigned to this MST. A <i>common spanning tree</i> (CST) is an MST to which several VLANs are mapped, this group of VLANs is called <i>MST instance</i> (MSTI). CSTs are backward compatible with the STP and RSTP standard. A MST that has only one VLAN assigned to it is an <i>internal spanning tree</i> (IST).<sup id="cite_ref-Solomon_23-3" class="reference"><a href="#cite_note-Solomon-23"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p><p>Unlike some proprietary per-VLAN spanning tree implementations,<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> MSTP includes all of its spanning tree information in a single BPDU format. Not only does this reduce the number of BPDUs required to communicate spanning tree information for each VLAN, but it also ensures backward compatibility with RSTP and, in effect, classic STP too. MSTP does this by encoding an additional region of information after the standard RSTP BPDU as well as a number of MSTI messages (from 0 to 64 instances, although in practice many bridges support fewer). Each of these MSTI configuration messages conveys the spanning tree information for each instance. Each instance can be assigned a number of configured VLANs and frames assigned to these VLANs operate in this spanning tree instance whenever they are inside the MST region. In order to avoid conveying their entire VLAN to spanning tree mapping in each BPDU, bridges encode an MD5 digest of their VLAN to instance table in the MSTP BPDU. This digest is then used by other MSTP bridges, along with other administratively configured values, to determine if the neighboring bridge is in the same MST region as itself.
</p><p>MSTP is fully compatible with RSTP bridges in that an MSTP BPDU can be interpreted by an RSTP bridge as an RSTP BPDU. This not only allows compatibility with RSTP bridges without configuration changes but also causes any RSTP bridges outside of an MSTP region to see the region as a single RSTP bridge regardless of the number of MSTP bridges inside the region itself. In order to further facilitate this view of an MSTP region as a single RSTP bridge, the MSTP protocol uses a variable known as remaining hops as a time to live counter instead of the message age timer used by RSTP. The message age time is only incremented once when spanning-tree information enters an MST region, and therefore RSTP bridges will see a region as only one <i>hop</i> in the spanning tree. Ports at the edge of an MSTP region connected to either an RSTP or STP bridge or an endpoint are known as boundary ports. As in RSTP, these ports can be configured as edge ports to facilitate rapid changes to the forwarding state when connected to endpoints.
</p>
<div class="mw-heading mw-heading2"><h2 id="Shortest_path_bridging">Shortest path bridging</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="IEEE_802.1aq" title="IEEE 802.1aq">IEEE 802.1aq</a></div>
<p>IEEE 802.1aq, also known as Shortest Path Bridging (SPB), allows redundant links between switches to be active through multiple equal cost paths, and provides much larger layer-2 topologies, faster convergence, and improves the use of the mesh topologies through increased bandwidth between all devices by allowing traffic to load share across all paths on a mesh network.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> SPB consolidates multiple existing functionalities, including Spanning Tree Protocol (STP), Multiple Spanning Tree Protocol (MSTP), Rapid Spanning Tree Protocol (RSTP), Link aggregation, and <a href="Multiple_MAC_Registration_Protocol" class="mw-redirect" title="Multiple MAC Registration Protocol">Multiple MAC Registration Protocol</a> (MMRP) into a one link state protocol.<sup id="cite_ref-IEEE_34-0" class="reference"><a href="#cite_note-IEEE-34"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="System_ID_Extension">System ID Extension</h3></div>
<p>The bridge ID (BID) is a field inside a BPDU packet. It is eight bytes in length. The first two bytes are the bridge priority, an unsigned integer of 0–65,535. The last six bytes are a <a href="MAC_address" title="MAC address">MAC address</a> supplied by the bridge. Prior to IEEE 802.1D-2004, the first two bytes gave a 16-bit bridge priority. Since IEEE 802.1D-2004, the first four bits are a configurable priority, and the last twelve bits carry the bridge system ID extension. In the case of MST, the bridge system ID extension carries the MSTP instance number. Some vendors set the bridge system ID extension to carry a VLAN ID allowing a different spanning tree per VLAN, such as Cisco's <a href="PVST" class="mw-redirect" title="PVST">PVST</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Disadvantages_and_current_practice">Disadvantages and current practice</h2></div>
<p>Spanning tree is an older protocol with a longer convergence time. Improper use or implementation can contribute to network disruptions. Blocking links is a crude approach to high availability and preventing loops. Modern networks can make use of all connected links by use of protocols that inhibit, control or suppress the natural behavior of logical or physical topology loops.
</p><p>Newer, more robust protocols include the <a href="TRILL" title="TRILL">TRILL</a> (Transparent Interconnection of Lots of Links) protocol, also created by Perlman,<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> and <a href="Shortest_Path_Bridging" class="mw-redirect" title="Shortest Path Bridging">Shortest Path Bridging</a> from the IEEE.
</p><p>Configuring connections between network equipment as <a href="Layer-3" class="mw-redirect" title="Layer-3">layer-3</a> IP links and relying on <a href="IP_routing" title="IP routing">IP routing</a> for resiliency and to prevent loops is a popular alternative.
</p><p>Switch virtualization techniques like Cisco Virtual Switching System and <a href="Virtual_PortChannel" class="mw-redirect" title="Virtual PortChannel">Virtual PortChannel</a> and HP <a href="Intelligent_Resilient_Framework" title="Intelligent Resilient Framework">Intelligent Resilient Framework</a> combine multiple switches into a single logical entity. Such a <a href="Multi-chassis_link_aggregation_group" title="Multi-chassis link aggregation group">multi-chassis link aggregation group</a> works like a normal <a href="Port_trunk" class="mw-redirect" title="Port trunk">port trunk</a>, only distributed through multiple switches. Conversely, partitioning technologies compartmentalize a single physical chassis into multiple logical entities.
</p><p>On the edge of the network, loop-detection is configured to prevent accidental loops by users.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Distributed_minimum_spanning_tree" title="Distributed minimum spanning tree">Distributed minimum spanning tree</a></li>
<li><a href="EtherChannel" title="EtherChannel">EtherChannel</a></li>
<li><a href="Ethernet_Automatic_Protection_Switching" title="Ethernet Automatic Protection Switching">Ethernet Automatic Protection Switching</a></li>
<li><a href="Ethernet_Ring_Protection_Switching" title="Ethernet Ring Protection Switching">Ethernet Ring Protection Switching</a></li>
<li><a href="Flex_links" title="Flex links">Flex links</a></li>
<li><a href="Flooding_(computer_networking)" title="Flooding (computer networking)">Flooding (computer networking)</a></li>
<li><a href="Media_Redundancy_Protocol" title="Media Redundancy Protocol">Media Redundancy Protocol</a></li>
<li><a href="Minimum_spanning_tree" title="Minimum spanning tree">Minimum spanning tree</a></li>
<li><a href="Resilient_Ethernet_Protocol" title="Resilient Ethernet Protocol">Resilient Ethernet Protocol</a></li>
<li><a href="Unidirectional_Link_Detection" title="Unidirectional Link Detection">Unidirectional Link Detection</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-lower-alpha">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">Spanning tree incorporated 802.1t, and per 802.1t, uses the 4 most-significant bits of the 802.1d two-octet priority field as priority, and the least-significant 12 bits of that field as the extended system ID.</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text">The original 802.1d envisioned the possibility of the root bridge having more than one port on the same <a href="Network_segment" title="Network segment">network segment</a>, and in that case, the port with the lowest port ID would become the designated port for that network segment, and put into forwarding mode, while its other ports on that same network segment became non-designated ports put into blocking mode. Not all bridge manufacturers follow that rule, some making all ports designated ports and putting them all into forwarding mode.</span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">Alternatively the network administrator can configure the switch as a spanning tree root primary or secondary. When configuring the root primary and root secondary the switch will automatically change the priority accordingly, 24,576 and 28,672 respectively with the default configuration.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-perlman_paper-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-perlman_paper_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-perlman_paper_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFPerlman1985" class="citation journal cs1"><a href="Radia_Perlman" title="Radia Perlman">Perlman, Radia</a> (1985). <a rel="nofollow" class="external text" href="https://semanticscholar.org/paper/933d8fc9b5ddc0e5e12116c1eb309ab535e6ae75">"An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN"</a>. <i>ACM SIGCOMM Computer Communication Review</i>. <b>15</b> (4): <span class="nowrap">44–</span>53. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F318951.319004">10.1145/318951.319004</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:61172150">61172150</a>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">
<cite id="CITEREFPerlman2000" class="citation book cs1"><a href="Radia_Perlman" title="Radia Perlman">Perlman, Radia</a> (2000). <i>Interconnections, Second Edition</i>. USA: Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-201-63448-1</bdi>.</cite></span>
</li>
<li id="cite_note-802.1Q-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-802.1Q_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-802.1Q_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.ieee802.org/1/pages/802.1Q-2014.html">Bridges and Bridged Networks</a></span>
</li>
<li id="cite_note-Angelescu-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-Angelescu_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Angelescu_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Angelescu_4-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Angelescu_4-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Angelescu_4-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Angelescu_4-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-Angelescu_4-6"><sup><i><b>g</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSilviu_Angelescu2010" class="citation book cs1">Silviu Angelescu (2010). <i>CCNA Certification All-In-One For Dummies</i>. John Wiley & Sons. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780470635926</bdi>.</cite></span>
</li>
<li id="cite_note-802.1D-2004-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-802.1D-2004_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-802.1D-2004_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20051210051119/http://standards.ieee.org/getieee802/download/802.1D-2004.pdf">"802.1D IEEE Standard for Local and Metropolitan Area Networks. Media Access Control (MAC) Bridges"</a> <span class="cs1-format">(PDF)</span>. <a href="IEEE" class="mw-redirect" title="IEEE">IEEE</a>. 2004. Archived from <a rel="nofollow" class="external text" href="http://standards.ieee.org/getieee802/download/802.1D-2004.pdf">the original</a> <span class="cs1-format">(PDF)</span> on December 10, 2005<span class="reference-accessdate">. Retrieved <span class="nowrap">19 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-CCNPCSG-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-CCNPCSG_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-CCNPCSG_6-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-CCNPCSG_6-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-CCNPCSG_6-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFWade_Edwards,_Terry_Jack,_Todd_Lammle,_Toby_Skandier,_Robert_Padjen,_Arthur_Pfund_&_Carl_Timm2006" class="citation book cs1">Wade Edwards, Terry Jack, Todd Lammle, Toby Skandier, Robert Padjen, Arthur Pfund & Carl Timm (2006). <i>CCNP Complete Study Guide: Exams 642-801, 642-811, 642-821, 642-831</i>. John Wiley & Sons. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780782150667</bdi>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite book}}</code>: CS1 maint: multiple names: authors list (link)</span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cisco.com/c/m/en_us/techdoc/dc/reference/cli/nxos/commands/l2/spanning-tree-vlan.html">"spanning-tree vlan"</a>. <a href="Cisco_Systems" class="mw-redirect" title="Cisco Systems">Cisco Systems</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-05-04</span></span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">802.1d-1998 section 8.3.1: The designated port for each LAN is the bridge port for which the value of the root path cost is the lowest: if two or more ports have the same value of root path cost, then first the bridge identifier of their bridges, and their port identifiers are used as tie breakers.</span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text">802.1d-1998 section 8.3.2 b) A Bridge that receives a Configuration BPDU on what it decides is its Root Port conveying better information (i.e. highest priority Root Identifier, lowest Root Path Cost, highest priority transmitting Bridge and Port), passes that information on to all the LANs for which it believes itself to be the Designated Bridge.</span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.firewall.cx/networking/ethernet/ieee-8023-frame.html">"The IEEE 802.3 Frame Format"</a>. <i>firewall.cx</i><span class="reference-accessdate">. Retrieved <span class="nowrap">31 October</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFFinn" class="citation web cs1">Finn, Norman. <a rel="nofollow" class="external text" href="http://www.ieee802.org/1/files/public/docs2003/provider-bridge-l2-protocols-2.pdf">"Provider Bridge Layer 2 Protocols"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE 802 LAN/MAN Standards Committee</i><span class="reference-accessdate">. Retrieved <span class="nowrap">20 October</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24062-146.html#anc5">"Understanding Rapid Spanning Tree Protocol (802.1w)"</a>. Cisco Systems. 1 August 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">20 March</span> 2020</span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite id="CITEREFLAN/MAN_Standards_Committee_of_the_IEEE_Computer_Society1990" class="citation book cs1">LAN/MAN Standards Committee of the IEEE Computer Society, ed. (1990). <i>ANSI/IEEE Std 802.1D</i>. IEEE.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite id="CITEREFLAN/MAN_Standards_Committee_of_the_IEEE_Computer_Society1998" class="citation book cs1">LAN/MAN Standards Committee of the IEEE Computer Society, ed. (1998). <i>ANSI/IEEE Std 802.1D, 1998 Edition, Part 3: Media Access Control (MAC) Bridges</i>. IEEE.</cite></span>
</li>
<li id="cite_note-standard-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-standard_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-standard_18-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLAN/MAN_Standards_Committee_of_the_IEEE_Computer_Society2004" class="citation book cs1">LAN/MAN Standards Committee of the IEEE Computer Society, ed. (2004). <i>ANSI/IEEE Std 802.1D – 2004: IEEE Standard for Local and Metropolitan Area Networks: Media Access Control (MAC) Bridges</i>. IEEE.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/11072-inter-vlan-11072.pdf">"Understanding Issues Related to Inter-VLAN Bridging"</a> <span class="cs1-format">(PDF)</span>. Cisco Systems, Inc. 11072. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20171014034717/https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/11072-inter-vlan-11072.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2017-10-14.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><i>IEEE 802.1D-2004</i>, <a href="IEEE" class="mw-redirect" title="IEEE">IEEE</a>, 2004-06-04, <q>Since the original Spanning Tree Protocol (STP) has been removed from the 2004 revision of IEEE Std 802.1D, an implementation of RSTP is required for any claim of conformance for an implementation of IEEE Std 802.1Q-2003 that refers to the current revision of IEEE Std 802.1D</q></cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite id="CITEREFWaldemar_Wojdak2003" class="citation web cs1 cs1-prop-unfit">Waldemar Wojdak (March 2003). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20060127092023/http://www.compactpci-systems.com/articles/id/?203">"Rapid Spanning Tree Protocol: A new solution from an old technology"</a>. <i>CompactPCI Systems</i>. Archived from the original on January 27, 2006<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-08-04</span></span>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.cisco.com/en/US/tech/tk389/tk621/technologies_white_paper09186a0080094cfa.shtml">"Understanding Rapid Spanning Tree Protocol (802.1w)"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2008-11-27</span></span>.</cite></span>
</li>
<li id="cite_note-Solomon-23"><span class="mw-cite-backlink">^ <a href="#cite_ref-Solomon_23-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Solomon_23-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Solomon_23-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Solomon_23-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMichael_G._Solomon,_David_Kim_&_Jeffrey_L._Carrell2014" class="citation book cs1">Michael G. Solomon, David Kim & Jeffrey L. Carrell (2014). <i>Fundamentals of Communications and Networking</i>. Jones & Bartlett Publishers. p. 204. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9781284060157</bdi>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.force10networks.com/CSPortal20/TechTips/0050B_HowDoIConfigureSpanningTree.aspx">"Technical Documentation"</a>. <a href="Force10" title="Force10">Force10</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2011-01-25</span></span>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.extremenetworks.com/libraries/products/DSExtXOS_1030.pdf">"ExtremeXOS Operating System, Version 12.5"</a> <span class="cs1-format">(PDF)</span>. <a href="Extreme_Networks" title="Extreme Networks">Extreme Networks</a>. 2010. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20061126120914/http://www.extremenetworks.com/libraries/products/DSExtXOS_1030.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2006-11-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-01-25</span></span>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.bladenetwork.net/userfiles/file/PDFs/WP_PVST_SpanningTree_Cisco.pdf">"BLADE PVST+ Interoperability with Cisco"</a> <span class="cs1-format">(PDF)</span>. 2006. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100612021303/http://bladenetwork.net/userfiles/file/PDFs/WP_PVST_SpanningTree_Cisco.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2010-06-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-01-25</span></span>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.cisco.com/en/US/docs/ios/12_1t/12_1t3/feature/guide/dtbridge.html#wp1020686">"Bridging Between IEEE 802.1Q VLANs"</a>. Cisco Systems<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-01-25</span></span>.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120407024355/http://www.juniper.net/techpubs/en_US/junos10.0/topics/concept/bridging-mvrp-ex-series.html">"Juniper Networks :: Technical Documentation :: Understanding Multiple VLAN Registration Protocol (MVRP) on EX Series Switches"</a>. <i>www.juniper.net</i>. Archived from <a rel="nofollow" class="external text" href="http://www.juniper.net/techpubs/en_US/junos10.0/topics/concept/bridging-mvrp-ex-series.html">the original</a> on 2012-04-07.</cite></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.juniper.net/techpubs/en_US/junos9.4/topics/concept/spanning-trees-ex-series-vstp-understanding.html">"Juniper Networks :: Technical Documentation :: Understanding VSTP for EX-series Switches"</a>.</cite></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.juniper.net/techpubs/en_US/junos14.1/topics/concept/spanning-trees-ex-series-vstp-understanding.html">Understanding VSTP</a></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cisco.com/en/US/prod/collateral/netmgtsw/ps6504/ps6528/ps2425/white_paper_c07-552114.html#wp9003215">"CiscoWorks LAN Management Solution 3.2 Deployment Guide"</a>. August 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-01-25</span></span>.</cite></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite id="CITEREFPeter_Ashwood-Smith2011" class="citation web cs1">Peter Ashwood-Smith (24 Feb 2011). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130515115628/http://meetings.apnic.net/__data/assets/pdf_file/0012/32007/APRICOT_SPB_Overview.pdf">"Shortest Path Bridging IEEE 802.1aq Overview"</a> <span class="cs1-format">(PDF)</span>. Huawei. Archived from <a rel="nofollow" class="external text" href="http://meetings.apnic.net/__data/assets/pdf_file/0012/32007/APRICOT_SPB_Overview.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 15 May 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">11 May</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text">
<cite id="CITEREFJim_Duffy2012" class="citation web cs1">Jim Duffy (11 May 2012). <a rel="nofollow" class="external text" href="http://www.pcadvisor.co.uk/news/internet/3357242/largest-illinois-healthcare-system-uproots-cisco-build-40m-private-cloud/">"Largest Illinois healthcare system uproots Cisco to build $40M private cloud"</a>. PC Advisor<span class="reference-accessdate">. Retrieved <span class="nowrap">11 May</span> 2012</span>. <q>Shortest Path Bridging will replace Spanning Tree in the Ethernet fabric.</q></cite></span>
</li>
<li id="cite_note-IEEE-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-IEEE_34-0">^</a></b></span> <span class="reference-text">
<cite class="citation news cs1"><a rel="nofollow" class="external text" href="http://www.techpowerup.com/165594/IEEE-Approves-New-IEEE-802.1aq-Shortest-Path-Bridging-Standard.html">"IEEE Approves New IEEE 802.1aq Shortest Path Bridging Standard"</a>. Tech Power Up. 7 May 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">11 May</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text">
<a rel="nofollow" class="external text" href="https://www.captechu.edu/blog/dr-radia-perlman-one-of-first-female-programmers-and-inventor-internets-protocols">"Dr. Radia Perlman: One of the First Female Programmers and Inventor the Internet's Protocols"</a>.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Spanning_tree_protocol" class="extiw external" title="commons:Category:Spanning tree protocol">Spanning Tree Protocol</a></span>.</div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="http://www.cisco.com/en/US/tech/tk389/tk621/tsd_technology_support_protocol_home.html">Cisco home page for the Spanning-Tree protocol family</a> (discusses CST, MISTP, PVST, PVST+, RSTP, STP)</li>
<li><a rel="nofollow" class="external text" href="https://wiki.wireshark.org/STP">STP article in the Wireshark wiki</a> Includes a sample PCAP-file of captured STP traffic.</li>
<li><cite id="CITEREFPerlman" class="citation web cs1"><a href="Radia_Perlman" title="Radia Perlman">Perlman, Radia</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110719212324/http://www.csua.berkeley.edu/~ranga/humor/algorhyme.txt">"Algorhyme"</a>. <a href="University_of_California_at_Berkeley" class="mw-redirect" title="University of California at Berkeley">University of California at Berkeley</a>. Archived from <a rel="nofollow" class="external text" href="http://www.csua.berkeley.edu/~ranga/humor/algorhyme.txt">the original</a> on 2011-07-19.</cite></li>
<li>IEEE Standards
<ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20051210051119/http://standards.ieee.org/getieee802/download/802.1D-2004.pdf">ANSI/IEEE 802.1D-2004 standard</a>, section 17 discusses RSTP (Regular STP is no longer a part of this standard. This is pointed out in section 8.)</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20070913195704/http://standards.ieee.org/getieee802/download/802.1Q-2005.pdf">ANSI/IEEE 802.1Q-2005 standard</a>, section 13 discusses MSTP</li></ul></li>
<li>RFCs
<ul><li>RFC <a rel="nofollow" class="external text" href="https://www.rfc-editor.org/rfc/rfc4363">4363</a>–2006, proposed standard, Definitions of Managed Objects for Bridges with Traffic Classes, Multicast Filtering, and Virtual LAN Extensions</li>
<li>RFC <a rel="nofollow" class="external text" href="https://www.rfc-editor.org/rfc/rfc4188">4188</a>–2005, proposed standard, Definitions of Managed Objects for Bridges</li>
<li>RFC <a rel="nofollow" class="external text" href="https://www.rfc-editor.org/rfc/rfc2674">2674</a>–1999, proposed standard, Definitions of Managed Objects for Bridges with Traffic Classes, Multicast Filtering and Virtual LAN Extensions</li>
<li>RFC <a rel="nofollow" class="external text" href="https://www.rfc-editor.org/rfc/rfc1525">1525</a>–1993 – SBRIDGEMIB, proposed standard, Definitions of Managed Objects for Source Routing Bridges</li>
<li>RFC <a rel="nofollow" class="external text" href="https://www.rfc-editor.org/rfc/rfc1493">1493</a>–1993 – BRIDGEMIB, draft standard, Definitions of Managed Objects for Bridges</li></ul></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110812152242/http://blog.ipexpert.com/2010/03/22/spanning-tree-direct-vs-indirect-link-failures/">Spanning Tree Direct vs Indirect Link Failures – CCIE Study</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20151227040910/http://www.networkel.com/2015/10/spanning-tree-protocol-stp-no-loop.html">Spanning Tree Protocol Overview</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="IEEE_standards209" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="IEEE_standards209" style="font-size:114%;margin:0 4em"><a href="IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE-488" class="mw-redirect" title="IEEE-488">488</a></li>
<li><a href="IEEE_693" title="IEEE 693">693</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">730</a></li>
<li><a href="IEEE_754" title="IEEE 754">754</a>
<ul><li><a href="IEEE_754-2008_revision" title="IEEE 754-2008 revision">Revision</a></li></ul></li>
<li><a href="IEEE_854-1987" title="IEEE 854-1987">854</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">828</a></li>
<li><a href="Software_test_documentation" title="Software test documentation">829</a></li>
<li><a href="Futurebus" title="Futurebus">896</a></li>
<li><a href="Single_UNIX_Specification" title="Single UNIX Specification">1003</a></li>
<li><a href="VMEbus" title="VMEbus">1014</a></li>
<li><a href="Software_design_description" title="Software design description">1016</a></li>
<li><a href="VHDL" title="VHDL">1076</a></li>
<li><a href="JTAG" title="JTAG">1149.1</a></li>
<li><a href="PILOT" title="PILOT">1154</a></li>
<li><a href="IEEE_1164" title="IEEE 1164">1164</a></li>
<li><a href="Open_Firmware" title="Open Firmware">1275</a></li>
<li><a href="Distributed_Interactive_Simulation" title="Distributed Interactive Simulation">1278</a></li>
<li><a href="IEEE_1284" title="IEEE 1284">1284</a></li>
<li><a href="IEEE_1355" title="IEEE 1355">1355</a></li>
<li><a href="IEEE_1394" title="IEEE 1394">1394</a></li>
<li><a href="IEEE_1451" title="IEEE 1451">1451</a></li>
<li><a href="Standard_Delay_Format" title="Standard Delay Format">1497</a></li>
<li><a href="High_Level_Architecture" title="High Level Architecture">1516</a></li>
<li><a href="IEEE_1541-2002" class="mw-redirect" title="IEEE 1541-2002">1541</a></li>
<li><a href="IEEE_1547" title="IEEE 1547">1547</a></li>
<li><a href="IEEE_1584" title="IEEE 1584">1584</a></li>
<li><a href="Precision_Time_Protocol" title="Precision Time Protocol">1588</a></li>
<li><a href="Scalable_Coherent_Interface" title="Scalable Coherent Interface">1596</a></li>
<li><a href="Advanced_Library_Format" title="Advanced Library Format">1603</a></li>
<li><a href="IEEE_1613" title="IEEE 1613">1613</a></li>
<li><a href="IEEE_1619" class="mw-redirect" title="IEEE 1619">1619</a></li>
<li><a href="SystemC" title="SystemC">1666</a></li>
<li><a href="IEEE_1667" title="IEEE 1667">1667</a></li>
<li><a href="IEEE_1675-2008" title="IEEE 1675-2008">1675</a></li>
<li><a href="IP-XACT" title="IP-XACT">1685</a></li>
<li><a href="IEEE_1722" class="mw-redirect" title="IEEE 1722">1722</a></li>
<li><a href="IEEE_1733" class="mw-redirect" title="IEEE 1733">1733</a></li>
<li><a href="SystemVerilog" title="SystemVerilog">1800</a></li>
<li><a href="Unified_Power_Format" title="Unified Power Format">1801</a></li>
<li><a href="DNP3" title="DNP3">1815</a></li>
<li><a href="IEEE_1849" title="IEEE 1849">1849</a></li>
<li><a href="Property_Specification_Language" title="Property Specification Language">1850</a></li>
<li><a href="IEEE_1855" title="IEEE 1855">1855</a></li>
<li><a href="DySPAN" title="DySPAN">1900</a></li>
<li><a href="IEEE_1901" title="IEEE 1901">1901</a></li>
<li><a href="RuBee" title="RuBee">1902</a></li>
<li><a href="Service_Interoperability_in_Ethernet_Passive_Optical_Networks" title="Service Interoperability in Ethernet Passive Optical Networks">1904</a></li>
<li><a href="IEEE_1905" title="IEEE 1905">1905</a></li>
<li><a href="IEEE_2030" title="IEEE 2030">2030</a></li>
<li><a href="Micro_T-Kernel" title="Micro T-Kernel">2050</a></li>
<li><a href="ISO/IEEE_11073" title="ISO/IEEE 11073">11073</a></li>
<li><a href="ISO/IEC_12207" title="ISO/IEC 12207">12207</a></li>
<li><a href="Software_maintenance" title="Software maintenance">14764</a></li>
<li><a href="Risk_management" title="Risk management">16085</a></li>
<li><a href="Project_management" title="Project management">16326</a></li>
<li><a href="Requirements_engineering" title="Requirements engineering">29148</a></li>
<li><a href="ISO/IEC_42010" title="ISO/IEC 42010">42010</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802" title="IEEE 802">802 series</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802" title="IEEE 802">802</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.2" title="IEEE 802.2">.2</a></li>
<li><a href="Token_bus_network" title="Token bus network">.4</a></li>
<li><a href="Token_Ring" title="Token Ring">.5</a></li>
<li><a href="IEEE_802.6" title="IEEE 802.6">.6</a></li>
<li><a href="IEEE_802.7" title="IEEE 802.7">.7</a></li>
<li><a href="IEEE_802.8" title="IEEE 802.8">.8</a></li>
<li><a href="IEEE_802.9" title="IEEE 802.9">.9</a></li>
<li><a href="IEEE_802.10" title="IEEE 802.10">.10</a></li>
<li><a href="100BaseVG" title="100BaseVG">.12</a></li>
<li><a href="Cable_modem#IEEE_802.14" title="Cable modem">.14</a></li>
<li><a href="IEEE_802.16" title="IEEE 802.16">.16</a>
<ul><li><a href="WiMAX" title="WiMAX">WiMAX · d · e</a></li></ul></li>
<li><a href="Resilient_Packet_Ring" title="Resilient Packet Ring">.17</a></li>
<li><a href="IEEE_802.18" title="IEEE 802.18">.18</a></li>
<li><a href="IEEE_802.20" title="IEEE 802.20">.20</a></li>
<li><a href="IEEE_802.21" title="IEEE 802.21">.21</a></li>
<li><a href="IEEE_802.22" title="IEEE 802.22">.22</a></li>
<li>.24</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.1" title="IEEE 802.1">802.1</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.1D" title="IEEE 802.1D">D</a></li>
<li><a href="IEEE_P802.1p" title="IEEE P802.1p">p</a></li>
<li><a href="IEEE_802.1Q" title="IEEE 802.1Q">Q</a></li>
<li><a href="IEEE_802.1Qav" class="mw-redirect" title="IEEE 802.1Qav">Qav</a></li>
<li><a href="Stream_Reservation_Protocol" title="Stream Reservation Protocol">Qat</a></li>
<li><a href="Provider_Backbone_Bridge_Traffic_Engineering" title="Provider Backbone Bridge Traffic Engineering">Qay</a></li>
<li><a href="Data_center_bridging#IEEE_Task_Group" title="Data center bridging">Qaz</a></li>
<li><a href="IEEE_802.1Qbb" class="mw-redirect" title="IEEE 802.1Qbb">Qbb</a></li>
<li><a href="IEEE_802.1X" title="IEEE 802.1X">X</a></li>
<li><a href="Link_Layer_Discovery_Protocol" title="Link Layer Discovery Protocol">AB</a></li>
<li><a href="IEEE_802.1ad" title="IEEE 802.1ad">ad</a></li>
<li><a href="IEEE_802.1AE" title="IEEE 802.1AE">AE</a></li>
<li><a href="IEEE_802.1ag" title="IEEE 802.1ag">ag</a></li>
<li><a href="IEEE_802.1ah-2008" class="mw-redirect" title="IEEE 802.1ah-2008">ah</a></li>
<li><a href="Multiple_Registration_Protocol" title="Multiple Registration Protocol">ak</a></li>
<li><a href="IEEE_802.1aq" title="IEEE 802.1aq">aq</a></li>
<li><a href="IEEE_802.1AS" class="mw-redirect" title="IEEE 802.1AS">AS</a></li>
<li><a href="Link_aggregation" title="Link aggregation">AX</a> (<a href="Link_Aggregation_Control_Protocol" class="mw-redirect" title="Link Aggregation Control Protocol">LACP</a>)</li>
<li><a href="Audio_Video_Bridging" title="Audio Video Bridging">BA</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.3" title="IEEE 802.3">802.3</a> <br>(<a href="Ethernet" title="Ethernet">Ethernet</a>)</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="10BASE5" title="10BASE5">-1983</a></li>
<li><a href="802.3a" class="mw-redirect" title="802.3a">a</a></li>
<li><a href="802.3b" class="mw-redirect" title="802.3b">b</a></li>
<li><a href="802.3d" class="mw-redirect" title="802.3d">d</a></li>
<li><a href="802.3e" class="mw-redirect" title="802.3e">e</a></li>
<li><a href="802.3i" class="mw-redirect" title="802.3i">i</a></li>
<li><a href="802.3j" class="mw-redirect" title="802.3j">j</a></li>
<li><a href="802.3u" class="mw-redirect" title="802.3u">u</a></li>
<li><a href="IEEE_802.3x" class="mw-redirect" title="IEEE 802.3x">x</a></li>
<li><a href="802.3y" class="mw-redirect" title="802.3y">y</a></li>
<li><a href="802.3z" class="mw-redirect" title="802.3z">z</a></li>
<li><a href="802.3ab" class="mw-redirect" title="802.3ab">ab</a></li>
<li><a href="802.3ac" class="mw-redirect" title="802.3ac">ac</a></li>
<li><a href="802.3ad" class="mw-redirect" title="802.3ad">ad</a></li>
<li><a href="802.3ae" class="mw-redirect" title="802.3ae">ae</a></li>
<li><b><a href="802.3af" class="mw-redirect" title="802.3af">af</a></b></li>
<li><a href="802.3ah" class="mw-redirect" title="802.3ah">ah</a></li>
<li><a href="802.3ak" class="mw-redirect" title="802.3ak">ak</a></li>
<li><a href="802.3an" class="mw-redirect" title="802.3an">an</a></li>
<li><a href="802.3aq" class="mw-redirect" title="802.3aq">aq</a></li>
<li><b><a href="802.3at" class="mw-redirect" title="802.3at">at</a></b></li>
<li><a href="802.3au" class="mw-redirect" title="802.3au">au</a></li>
<li><a href="802.3av" class="mw-redirect" title="802.3av">av</a></li>
<li><a href="802.3az" class="mw-redirect" title="802.3az">az</a></li>
<li><a href="802.3ba" class="mw-redirect" title="802.3ba">ba</a></li>
<li><b><a href="802.3bt" class="mw-redirect" title="802.3bt">bt</a></b></li>
<li><a href="802.3bu" class="mw-redirect" title="802.3bu">bu</a></li>
<li><a href="802.3by" class="mw-redirect" title="802.3by">by</a></li>
<li><a href="802.3bz" class="mw-redirect" title="802.3bz">bz</a></li>
<li>ca</li>
<li>cb</li>
<li>cc</li>
<li>cd</li>
<li>ce</li>
<li><a href="802.3cg" class="mw-redirect" title="802.3cg">cg</a></li>
<li><a href="802.3ch" class="mw-redirect" title="802.3ch">ch</a></li>
<li>ck</li>
<li>cm</li>
<li>cn</li>
<li>cp</li>
<li><a href="802.3cq" class="mw-redirect" title="802.3cq">cq</a></li>
<li>cr</li>
<li>cs</li>
<li>ct</li>
<li>cu</li>
<li><a href="802.3cv" class="mw-redirect" title="802.3cv">cv</a></li>
<li>cw</li>
<li>cx</li>
<li>cy</li>
<li>cz</li>
<li>da</li>
<li>db</li>
<li><a href="802.3dd" class="mw-redirect" title="802.3dd">dd</a></li>
<li>de</li>
<li>df</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.11" title="IEEE 802.11">802.11</a> <br>(<a href="Wi-Fi" title="Wi-Fi">Wi-Fi</a>)</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.11-1997" class="mw-redirect" title="IEEE 802.11-1997">-1997</a></li>
<li><a href="IEEE_802.11_(legacy_mode)" title="IEEE 802.11 (legacy mode)">legacy mode</a></li>
<li><a href="IEEE_802.11a-1999" title="IEEE 802.11a-1999">a</a></li>
<li><a href="IEEE_802.11b-1999" title="IEEE 802.11b-1999">b</a></li>
<li><a href="IEEE_802.11c" title="IEEE 802.11c">c</a></li>
<li><a href="IEEE_802.11d-2001" title="IEEE 802.11d-2001">d</a></li>
<li><a href="IEEE_802.11e-2005" title="IEEE 802.11e-2005">e</a></li>
<li><a href="Inter-Access_Point_Protocol" title="Inter-Access Point Protocol">f</a></li>
<li><a href="IEEE_802.11g-2003" title="IEEE 802.11g-2003">g</a></li>
<li><a href="IEEE_802.11h-2003" title="IEEE 802.11h-2003">h</a></li>
<li><a href="IEEE_802.11i-2004" title="IEEE 802.11i-2004">i</a></li>
<li><a href="IEEE_802.11j-2004" title="IEEE 802.11j-2004">j</a></li>
<li><a href="IEEE_802.11k-2008" title="IEEE 802.11k-2008">k</a></li>
<li><b><a href="IEEE_802.11n-2009" title="IEEE 802.11n-2009">n</a></b> (<a href="Wi-Fi_4" class="mw-redirect" title="Wi-Fi 4">Wi-Fi 4</a>)</li>
<li><a href="IEEE_802.11p" title="IEEE 802.11p">p</a></li>
<li><a href="IEEE_802.11r-2008" title="IEEE 802.11r-2008">r</a></li>
<li><a href="IEEE_802.11s" title="IEEE 802.11s">s</a></li>
<li><a href="IEEE_802.11u" title="IEEE 802.11u">u</a></li>
<li><a href="IEEE_802.11v" class="mw-redirect" title="IEEE 802.11v">v</a></li>
<li><a href="IEEE_802.11w-2009" title="IEEE 802.11w-2009">w</a></li>
<li><a href="IEEE_802.11y-2008" title="IEEE 802.11y-2008">y</a></li>
<li><a href="IEEE_802.11z" class="mw-redirect" title="IEEE 802.11z">z</a></li>
<li>aa</li>
<li><b><a href="IEEE_802.11ac" class="mw-redirect" title="IEEE 802.11ac">ac</a></b> (<a href="Wi-Fi_5" class="mw-redirect" title="Wi-Fi 5">Wi-Fi 5</a>)</li>
<li><a href="IEEE_802.11ad" title="IEEE 802.11ad">ad</a> (<a href="WiGig" title="WiGig">WiGig</a>)</li>
<li>ae</li>
<li><a href="IEEE_802.11af" title="IEEE 802.11af">af</a></li>
<li><a href="IEEE_802.11ah" title="IEEE 802.11ah">ah</a></li>
<li><a href="IEEE_802.11ai" title="IEEE 802.11ai">ai</a></li>
<li><a href="IEEE_802.11aj" class="mw-redirect" title="IEEE 802.11aj">aj</a></li>
<li>ak</li>
<li>aq</li>
<li><b><a href="IEEE_802.11ax" class="mw-redirect" title="IEEE 802.11ax">ax</a></b> (<a href="Wi-Fi_6" title="Wi-Fi 6">Wi-Fi 6</a>)</li>
<li><a href="IEEE_802.11ay" title="IEEE 802.11ay">ay</a></li>
<li>az</li>
<li>ba</li>
<li><a href="IEEE_802.11bb" title="IEEE 802.11bb">bb</a></li>
<li>bc</li>
<li>bd</li>
<li><b><a href="IEEE_802.11be" class="mw-redirect" title="IEEE 802.11be">be</a></b> (<a href="Wi-Fi_7" title="Wi-Fi 7">Wi-Fi 7</a>)</li>
<li>bf</li>
<li>bh</li>
<li>bi</li>
<li>bk</li>
<li><b><a href="IEEE_802.11bn" title="IEEE 802.11bn">bn</a></b> (Wi-Fi 8)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.15" title="IEEE 802.15">802.15</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.15.1" class="mw-redirect" title="IEEE 802.15.1">.1</a> (<a href="Bluetooth" title="Bluetooth">Bluetooth</a>)</li>
<li><a href="IEEE_802.15.2" class="mw-redirect" title="IEEE 802.15.2">.2</a></li>
<li><a href="IEEE_802.15.3" class="mw-redirect" title="IEEE 802.15.3">.3</a></li>
<li><a href="IEEE_802.15.4" title="IEEE 802.15.4">.4</a> (<a href="Zigbee" title="Zigbee">Zigbee</a>)</li>
<li><a href="IEEE_802.15.4a" title="IEEE 802.15.4a">.4a</a></li>
<li>.4b</li>
<li>.4c</li>
<li>.4d</li>
<li>.4e</li>
<li>.4f</li>
<li>.4g</li>
<li>.4z</li>
<li><a href="IEEE_802.15.5" class="mw-redirect" title="IEEE 802.15.5">.5</a></li>
<li><a href="IEEE_802.15.6" title="IEEE 802.15.6">.6</a></li>
<li><a href="IEEE_802.15.7" class="mw-redirect" title="IEEE 802.15.7">.7</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Proposed</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_P1363" title="IEEE P1363">P1363</a></li>
<li><a href="IEEE_P1619" title="IEEE P1619">P1619</a></li>
<li><a href="Rosetta-lang" title="Rosetta-lang">P1699</a></li>
<li><a href="Universal_Power_Adapter_for_Mobile_Devices" title="Universal Power Adapter for Mobile Devices">P1823</a></li>
<li><a href="IEEE_P1906.1" title="IEEE P1906.1">P1906.1</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Superseded</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_754-1985" title="IEEE 754-1985">754-1985</a></li>
<li><a href="Software_requirements_specification" title="Software requirements specification">830</a></li>
<li><a href="IEEE_1219" class="mw-redirect" title="IEEE 1219">1219</a></li>
<li><a href="Software_requirements_specification" title="Software requirements specification">1233</a></li>
<li><a href="Concept_of_operations" title="Concept of operations">1362</a></li>
<li><a href="Verilog" title="Verilog">1364</a></li>
<li><a href="IEEE_1471" title="IEEE 1471">1471</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-30" href="https://en.wikipedia.org/wiki/?title=Spanning_Tree_Protocol&oldid=1293128283">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>